import  pandas as pd

pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)
pd.set_option('display.unicode.east_asian_width', True)

df = pd.read_csv('JD.csv',encoding='gbk')

# df1 = df[['一级分类','7天点击量','订单预定']]
# print(df)
# print(df1.groupby('一级分类').sum())

# 多列分组统计
df1 = df[['一级分类','二级分类','7天点击量','订单预定']]
# print(df)
# print(df1.groupby(['一级分类','二级分类']).sum())
# 对分组数据进行指定列数据计算
# print(df1.groupby('二级分类')['7天点击量'].sum())




# 对分组数据迭代

df1 = df[['一级分类','7天点击量','订单预定']]
# for name,group in df1.groupby('一级分类'):
#     print(name)
#     print(group)
#     print('------------------------')

# 对“两级分类”分组数据进行迭代
df2 = df[['一级分类','二级分类','7天点击量','订单预定']]
# for (key1 , key2) , group in df2.groupby(['一级分类','二级分类']):
#     print(key1,key2)
#     print(group)
#     print('==========================')

# 分组后 使用不同的 聚合函数
# print(df1.groupby('一级分类').agg('sum','mean'))
# 不同列使用不同的聚合函数

# print(df1.groupby('一级分类').agg({
#     '7天点击量':['mean','sum'],
#     '订单预定':['sum']
# }))

# 通过制定自定义函数实现分组统计

df = pd.read_excel('1月.xlsx')
# x --->  '宝贝标题'
# value_counts()函数 用于Series对象中的每个值进行计算且排序
max1 = lambda x : x.value_counts(dropna=False).index[0]
max1.__name__ = "购买次数最多"

df1 = df.agg({
    '宝贝标题':[max1],
    '数量':['sum','mean'],
    '买家实际支付金额':['sum','mean']
})
# print(df1)


# 通过字典和Series对象进行分组统计

df = pd.read_csv('JD1.csv' , encoding='gbk')
df = df.set_index(['商品名称'])

dict1 = {
    '上海出库销量': '北上广',
    '北京出库销量': '北上广',
    '广州出库销量': '北上广',
    '成都出库销量': '成都',
    '武汉出库销量': '武汉',
    '西安出库销量': '西安',
}

df1 = df.groupby(dict1,axis=1).sum()
# print(df1)

data = {
    '上海出库销量': '北上广',
    '北京出库销量': '北上广',
    '广州出库销量': '北上广',
    '成都出库销量': '成都',
    '武汉出库销量': '武汉',
    '西安出库销量': '西安',
}

s1 = pd.Series(data)
df1 = df.groupby(s1,axis=1).sum()
print(df1)



